﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using TestesFixacao.Dominio.Modelos;
using TestesFixacao.WindowsApp.Refatorado.Controls.Shared;

namespace TestesFixacao.WindowsApp.Refatorado.Controls.SerieForms
{
    public partial class SerieDialogFunc : BaseDialog
    {
        private Serie _serie;

        public SerieDialogFunc(string descricao)
        {
            InitializeComponent();

            if (string.IsNullOrEmpty(descricao))
                throw new ArgumentNullException("descricao");

            DescricaoTela = descricao;

            RegistraControles(txtNumero, txtDescricao);

            RedimensionaJanela(new Size(Size.Width, Size.Height - 100));
        }

        public Serie Serie
        {
            get { return _serie; }
            set
            {
                _configurando = true;
                _serie = value;

                txtNumero.Text = _serie.Numero.ToString();
                txtDescricao.Text = _serie.Descricao;
                txtDescricao.Select();

                _configurando = false;

                DoOperation();
            }
        }

        protected override void DoOperation()
        {
            if (_configurando)
                return;

            _serie.Numero = int.Parse(txtNumero.Text);
            _serie.Descricao = txtDescricao.Text;

            try
            {
                _serie.Valida();

                Main.Instance.ShowMessageInFooter("A teste já pode ser gravada");

                HabilitaBotaoOk();
            }
            catch (Exception ex)
            {
                DesabilitaBotaoOk();
                Main.Instance.ShowMessageInFooter(ex.Message);
            }
        }
    }
}